home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1993…ch: Other People's Memory / ADC Developer CD (1993-03) (''Other People's Memory'')_iso / Dev.CD Mar 93.iso / Development Platforms / Apple II / Essentials / APW Interfaces / CInclude / Menu.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-03-04  |  8.5 KB  |  234 lines  |  [TEXT/MPS ]

  1. /********************************************
  2. ; File: Menu.h
  3. ;
  4. ;
  5. ; Copyright Apple Computer, Inc. 1986-91
  6. ; All Rights Reserved
  7. ;
  8. ********************************************/
  9. #ifndef __TYPES__
  10. #include <TYPES.h>
  11. #endif
  12.  
  13. #ifndef __QUICKDRAW__
  14. #include <QUICKDRAW.h>
  15. #endif
  16.  
  17. #ifndef __EVENT__
  18. #include <EVENT.h>
  19. #endif
  20.  
  21. #ifndef __CONTROL__
  22. #include <CONTROL.h>
  23. #endif
  24.  
  25. #ifndef __WINDOW__
  26. #include <WINDOW.h>
  27. #endif
  28.  
  29. #ifndef __MENU__
  30. #define __MENU__
  31.  
  32. /* error codes */
  33. #define menuStarted 0x0F01
  34. #define menuItemNotFound 0x0F02
  35. #define menuNoStruct 0x0F03
  36. #define dupMenuID 0x0F04
  37.  
  38. /* InsertPathMItems bit flags */
  39. #define ipmiNotExpanded 0x0010
  40. #define ipmiDevNumValid 0x0008
  41. #define ipmiOpenFolders 0x0004
  42. #define ipmiDeviceAtTop 0x0001
  43.  
  44. /* MenuDefProc Codes */
  45. #define mDrawMsg 0x0000
  46. #define mChooseMsg 0x0001
  47. #define mSizeMsg 0x0002
  48. #define mDrawTitle 0x0003
  49. #define mDrawMItem 0x0004
  50. #define mGetMItemID 0x0005
  51.  
  52. /* Reference Flags */
  53. #define menuRefPtr 0x0000
  54. #define mRefHandle 0x4000
  55. #define mRefResource 0x8000
  56.  
  57. /* Menu Flags */
  58. #define menuAllowCache 0x0008
  59. #define menuCustom 0x0010
  60. #define menuXOR 0x0020
  61. #define menuDisabled 0x0080
  62. #define menuAlwaysCallMChoose 0x0100
  63.  
  64. /* Item Flags */
  65. #define itemBold 0x0001
  66. #define itemItalic 0x0002
  67. #define itemUnderline 0x0004
  68. #define itemXOR 0x0020
  69. #define itemDivider 0x0040
  70. #define itemDisabled 0x0080
  71. #define itemOutline 0x0800
  72. #define itemShadow 0x1000
  73.  
  74. /* Old Menu Flags */
  75. #define mInvis 0x0004
  76. #define mCustom 0x0010
  77. #define mXor 0x0020
  78. #define mSelected 0x0040
  79. #define mDisabled 0x0080
  80.  
  81. /* MenuFlag Masks */
  82. #define menuCacheMask 0x0008
  83. #define customMenu 0x0010
  84. #define xorMItemHilite 0x0020
  85. #define xorTitleHilite 0x0020
  86. #define underMItem 0x0040
  87. #define disableItem 0x0080
  88. #define disableMenu 0x0080
  89. #define enableItem 0xFF7F
  90. #define enableMenu 0xFF7F
  91. #define noUnderMItem 0xFFBF
  92. #define colorMItemHilite 0xFFDF
  93. #define colorTitleHilite 0xFFDF
  94. #define colorReplace 0xFFDF
  95. #define standardMenu 0xFFEF
  96.  
  97. /* Other misc constants */
  98. #define type2 0x0040
  99. #ifndef mtItemRefArrayLength  /* MenuTemplate - default number of Ref's */
  100. #define mtItemRefArrayLength 0x0005
  101. #endif
  102. #ifndef mbtMenuRefArrayLength  /* MenuBarTemplate - default number of Ref's */
  103. #define mbtMenuRefArrayLength 0x0005
  104. #endif
  105. typedef CtlRec MenuBarRec, *MenuBarRecPtr, **MenuBarRecHndl;
  106. struct MenuRec {
  107.    Word menuID; /* Menu's ID number */
  108.    Word menuWidth; /* Width of menu */
  109.    Word menuHeight; /* Height of menu */
  110.    WordProcPtr menuProc; /* Menu's definition procedure */
  111.    Word menuFlag; /* Bit flags */
  112.    Word numOfItems;
  113.    Word titleWidth; /* Width of menu's title */
  114.    Pointer titleName;
  115.    Handle menuCache;
  116. } ;
  117. typedef struct MenuRec MenuRec, *MenuRecPtr, **MenuRecHndl;
  118. struct MenuItemTemplate {
  119.    Word version; /* Version number (must be 0) */
  120.    Word itemID; /* Menu item ID */
  121.    Byte itemChar; /* Primary keystroke character */
  122.    Byte itemAltChar; /* Alternate keystroke character */
  123.    Word itemCheck; /* Character code for checked items */
  124.    Word itemFlag; /* Menu item flag word */
  125.    Ref itemTitleRef; /* Reference to item title string */
  126. } ;
  127. typedef struct MenuItemTemplate MenuItemTemplate;
  128. struct MenuTemplate {
  129.    Word version; /* Version number (must be 0) */
  130.    Word menuID; /* Menu ID */
  131.    Word menuFlag; /* Menu flag word */
  132.    Ref menuTitleRef; /* Reference to menu title string */
  133.    Ref itemRefArray[mtItemRefArrayLength]; /* mtItemRefArrayLength references to menu items  */
  134. } ;
  135. typedef struct MenuTemplate MenuTemplate;
  136. struct MenuBarTemplate {
  137.    Word version; /* Version number (must be 0) */
  138.    Word menuFlag; /* MenuBar flag word */
  139.    Ref menuRefArray[mbtMenuRefArrayLength]; /* mbtMenuRefArrayLength references to menus */
  140. } ;
  141. typedef struct MenuBarTemplate MenuBarTemplate;
  142.  
  143. typedef struct itemStruct {
  144.    Word itemFlag2;
  145.    Ref itemTitleRef;
  146.    Ref itemIconRef;
  147. } ;
  148. typedef struct itemStruct itemStruct;
  149.  
  150. typedef struct ipmiResultRec {
  151.    Word highestID;
  152.    Handle tempHandle1, tempHandle2;
  153. } ;
  154. typedef struct ipmiResultRec ipmiResultRec;
  155.  
  156. extern pascal void CalcMenuSize() inline(0x1C0F,dispatcher);
  157. extern pascal void CheckMItem() inline(0x320F,dispatcher);
  158. extern pascal Word CountMItems() inline(0x140F,dispatcher);
  159. extern pascal void DeleteMenu() inline(0x0E0F,dispatcher);
  160. extern pascal void DeleteMItem() inline(0x100F,dispatcher);
  161. extern pascal void DisableMItem() inline(0x310F,dispatcher);
  162. extern pascal void DisposeMenu() inline(0x2E0F,dispatcher);
  163. extern pascal void DrawMenuBar() inline(0x2A0F,dispatcher);
  164. extern pascal void EnableMItem() inline(0x300F,dispatcher);
  165. extern pascal Word FixMenuBar () inline(0x130F,dispatcher);
  166. extern pascal void FlashMenuBar () inline(0x0C0F,dispatcher);
  167. extern pascal LongWord GetBarColors () inline(0x180F,dispatcher);
  168. extern pascal MenuBarRecHndl GetMenuBar () inline(0x0A0F,dispatcher);
  169. extern pascal Word GetMenuFlag () inline(0x200F,dispatcher);
  170. extern pascal GrafPortPtr GetMenuMgrPort () inline(0x1B0F,dispatcher);
  171. extern pascal Pointer GetMenuTitle () inline(0x220F,dispatcher);
  172. extern pascal MenuRecHndl GetMHandle () inline(0x160F,dispatcher);
  173. extern pascal StringPtr GetMItem () inline(0x250F,dispatcher);
  174. extern pascal Word GetMItemFlag () inline(0x270F,dispatcher);
  175. extern pascal Word GetMItemMark () inline(0x340F,dispatcher);
  176. extern pascal TextStyle GetMItemStyle () inline(0x360F,dispatcher);
  177. extern pascal Word GetMTitleStart () inline(0x1A0F,dispatcher);
  178. extern pascal Word GetMTitleWidth () inline(0x1E0F,dispatcher);
  179. extern pascal Pointer GetPopUpDefProc () inline(0x3B0F,dispatcher);
  180. extern pascal MenuBarRecHndl GetSysBar () inline(0x110F,dispatcher);
  181. extern pascal void HideMenuBar () inline(0x450F,dispatcher);
  182. extern pascal void HiliteMenu () inline(0x2C0F,dispatcher);
  183. extern pascal void InitPalette () inline(0x2F0F,dispatcher);
  184. extern pascal void InsertMenu () inline(0x0D0F,dispatcher);
  185. extern pascal void InsertMItem () inline(0x0F0F,dispatcher);
  186. extern pascal void InsertMItem2() inline(0x3F0F,dispatcher);
  187. extern pascal void MenuBootInit() inline(0x010F,dispatcher);
  188. extern pascal Word MenuGlobal () inline(0x230F,dispatcher);
  189. extern pascal void MenuKey () inline(0x090F,dispatcher);
  190. extern pascal void MenuNewRes () inline(0x290F,dispatcher);
  191. extern pascal void MenuRefresh () inline(0x0B0F,dispatcher);
  192. extern pascal void MenuReset() inline(0x050F,dispatcher);
  193. extern pascal void MenuSelect () inline(0x2B0F,dispatcher);
  194. extern pascal void MenuShutDown() inline(0x030F,dispatcher);
  195. extern pascal void MenuStartUp() inline(0x020F,dispatcher);
  196. extern pascal Boolean MenuStatus() inline(0x060F,dispatcher);
  197. extern pascal Word MenuVersion() inline(0x040F,dispatcher);
  198. extern pascal MenuRecHndl NewMenu () inline(0x2D0F,dispatcher);
  199. extern pascal MenuRecHndl NewMenu2() inline(0x3E0F,dispatcher);
  200. extern pascal MenuBarRecHndl NewMenuBar () inline(0x150F,dispatcher);
  201. extern pascal MenuBarRecHndl NewMenuBar2() inline(0x430F,dispatcher);
  202. extern pascal Word PopUpMenuSelect () inline(0x3C0F,dispatcher);
  203. extern pascal void SetBarColors () inline(0x170F,dispatcher);
  204. extern pascal void SetMenuBar () inline(0x390F,dispatcher);
  205. extern pascal void SetMenuFlag () inline(0x1F0F,dispatcher);
  206. extern pascal void SetMenuID () inline(0x370F,dispatcher);
  207. extern pascal void SetMenuTitle () inline(0x210F,dispatcher);
  208. extern pascal void SetMenuTitle2 () inline(0x400F,dispatcher);
  209. extern pascal void SetMItem () inline(0x240F,dispatcher);
  210. extern pascal void SetMItem2() inline(0x410F,dispatcher);
  211. extern pascal void SetMItemBlink () inline(0x280F,dispatcher);
  212. extern pascal void SetMItemFlag () inline(0x260F,dispatcher);
  213. extern pascal void SetMItemID () inline(0x380F,dispatcher);
  214. extern pascal void SetMItemMark () inline(0x330F,dispatcher);
  215. extern pascal void SetMItemName () inline(0x3A0F,dispatcher);
  216. extern pascal void SetMItemName2 () inline(0x420F,dispatcher);
  217. extern pascal void SetMItemStyle () inline(0x350F,dispatcher);
  218. extern pascal void SetMTitleStart () inline(0x190F,dispatcher);
  219. extern pascal void SetMTitleWidth () inline(0x1D0F,dispatcher);
  220. extern pascal void SetSysBar () inline(0x120F,dispatcher);
  221. extern pascal void ShowMenuBar() inline(0x460F,dispatcher);
  222.  
  223. extern pascal void SetMItemIcon() inline(0x470F,dispatcher);
  224. extern pascal Ref GetMItemIcon() inline(0x480F,dispatcher);
  225. extern pascal void SetMItemStruct() inline(0x490F,dispatcher);
  226. extern pascal Ref GetMItemStruct() inline(0x4A0F,dispatcher);
  227. extern pascal void RemoveMItemStruct() inline(0x4B0F,dispatcher);
  228. extern pascal Word GetMItemFlag2() inline(0x4C0F,dispatcher);
  229. extern pascal void SetMItemFlag2() inline(0x4D0F,dispatcher);
  230. extern pascal Word GetMItemBlink() inline(0x4F0F,dispatcher);
  231. extern pascal void InsertPathMItems() inline(0x500F,dispatcher);
  232.  
  233. #endif
  234.